package com.yxx.mapper;

import com.github.pagehelper.Page;
import com.yxx.annotation.AutoFill;
import com.yxx.medicinecommon.enumeration.OperationType;
import com.yxx.medicinepojo.dto.Medicine_Category_PageQueryDTO;
import com.yxx.medicinepojo.entity.Medicine_Category;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

/**
 * 分类管理
 * @author yuxiangxun
 * @date 2024/9/7
 * @apiNote
 */
@Mapper
public interface MedicineCategoryMapper {


    /**
     * 分页查询
     * @param medicineCategoryPageQueryDTO
     * @return
     */
    Page<Medicine_Category> page(Medicine_Category_PageQueryDTO medicineCategoryPageQueryDTO);

    /**
     * 修改启用/禁用信息
     * 编辑分类信息
     * @param medicineCategory
     */
    @AutoFill(value = OperationType.UPDATE)
    void update(Medicine_Category medicineCategory);

    /**
     * 根据类型查询分类列表
     * @param type
     * @return
     */
    List<Medicine_Category> typeList_Select(Integer type);

    /**
     * 分类信息插入
     * @param medicineCategory
     */
    @Insert(
            "insert into medicine_category(type,name,sort,status,create_time,update_time,create_user,update_user)"+
                    "values (#{type},#{name},#{sort},#{status},#{createTime},#{updateTime},#{createUser},#{updateUser})"
    )
    @AutoFill(value = OperationType.INSERT)
    void insert(Medicine_Category medicineCategory);

    /**
     * 根据分类id删除分类信息
     * @param id
     */
    @Delete("delete from medicine_category where id = #{id}")
    void delete_Medicine_Category_Id(Long id);

}
